iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0

Docker 介紹

https://ithelp.ithome.com.tw/upload/images/20240913/20146555TPPoMiP9YH.png

Docker是一個開放原始碼的開放平臺軟體,用於開發應用、交付應用和執行應用。Docker允許使用者將基礎設施中的應用單獨分割出來,形成更小的容器化服務,從而提高交付軟體的速度。
為什麼我們要容器化我們的服務呢?
簡單的來說,就是要增加我們程式的互通性,使用Dockerfile把服務包起來的方式,使的服務變得獨力、可控、且多擴展性為主要目的。

容器化(Containerize)

容器化是一種在概念上相似於虛擬機,但在原理上略有不同的技術,其主要目的在於提供開發者用於測試應用程式的沙盒環境。開發者將想測試的應用程式與 Dependency(相依性資源)封裝於容器進行測試。容器化與 VM 的相異之處在於,由於容器不會模擬系統底層的基礎架構,因此需耗費的資源也相對較低。開發者能夠在容器內配置不同的資源,因為每個容器都獨立運行且彼此之間不會互相影響

Docker 三元素:

  • 映像檔(Image)
    映像檔就是一個模板,用來重複產生容器實體。可以自行產生或是從公開的地方下載使用。
  • 容器(Container)
    容器是用映像檔建立的執行實例。可以被啟動、開始、停止、刪除。每個容器之間都是相互隔離、保證安全的平台。
  • 倉庫(Repository)
    倉庫是集中存放映像檔檔案的場所。可以 push、pull 的方式上傳、存取映像檔。

Container (容器)

容器是映像檔建立出來的實例(Instance),我們能將它比喻為一個輕量級的沙盒,Docker 利用容器運行和隔離應用程式,能夠在容器中將應用程式啟動、開始、停止、刪除。由於映像檔是唯讀(Read Only)的模板,因此容器在運行後映像檔的上層會增加一個能夠修改的讀寫層(Read and Write),而映像檔本身則不變。
https://ithelp.ithome.com.tw/upload/images/20240913/20146555L1ada4aOVp.png

Repository(倉庫)

Repository 是儲存映像檔的地方,使用者可以將自己完成的映像檔上傳至倉庫上儲存,倉庫上也有許多現成的映像檔供用戶存取,倉儲的種類被分為公開與私人兩種,目前官方最大的公開倉庫是 Docker Hub。在上面儲存了超過 15,000 個映像檔供使用者下載。
https://ithelp.ithome.com.tw/upload/images/20240913/2014655564UXXFIuq5.png

安裝 Docker engine

請準備一 Linux主機or虛擬機(cli 或 gui)都可

安裝步驟參考官網

Step 1 更新來源+新增apt來源

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Step 2 安裝Docker engine相關套件

# Install the Docker packages
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Step 3 確認安裝是否成功

sudo docker run hello-world

成功的話會有以下輸出

https://ithelp.ithome.com.tw/upload/images/20240913/20146555nnW72ZLS3l.png


上一篇
[Day 4] 什麼是向量資料庫
下一篇
[Day 6] 用 Faiss 搜尋相似資料
系列文
RAG自己來系列:客服機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言